Contents | < Browse | Browse >
The concept

A normal animation-converter like MainActor reads in a input-stream
of pictures and writes them as output-stream to harddisk.
(The complicated process of (de)compressing various animation-
formats is here neglected.)

The Converter of Wildfire extends this simple concept by a
PlugIn-architecture. You can "plug in" as many modifications
between the input and the output as you want. These modifications
are realized via Operators.
For example this concept would allow to scale down animations
"plugging in" a Halve-operator.

A further extension is the usage of tempory buffers called
"TEMP-buffers". Every Wildfire-PlugIn has at least two Parameters:
the input- and the output-buffer. The "normal" buffer generated
by the Converter is called "STREAM". There are 8 TEMP-buffers
called "TEMP1"..."TEMP8".

In this terms the process of halving an animation looks like this:

input
  I
  ->STREAM -> Halve -> STREAM
                         I
                       output

This concept of TEMP-buffers is much more powerful. For example it
allows you to create an animation which consists of the input-
animation as gray background and as small colored foreground.
In this case you would need a Scale-, a ColorToGray- and a Compose-
PlugIn.
The scheme would look like this:

input
  I
  ->STREAM -> Scale       -> TEMP1  )
                                     > Compose -> STREAM
           -> ColorToGray -> STREAM )               I
                                                  output

But this concept doesn't allow you very complicated effects
like a jumping animation in front of a melting one.
So a further extension is necessary: time-dependant animation-
parameters.
For example this allows you to create a spinning animation.
All you need is a Rotate-PlugIn and a rotate-amount running
from 0 to 360 degrees during the whole animation.
Let's assume your animation has 120 frames. To convert it into a
spinning one you have to "plug in" the Rotate-Operator, to
create the Envelope describing the variation of the
rotate-amount with the frame number and to "plug in" this
Envelope into the Rotate-Operator. That's it.
The Envelope consists of two points one at frame 0 with the
value 0 and one at frame 120 with the value 360.
Setting the value 0 at frame 0 which is never reached (the
first frame is always 1) causes the creation of a looping
animation.

As said before, if you understood this concept you can
do almost anything.

Example: Compose four different animations after applying
a Twirl-effect to the 1st, a Negative-effect to the 2nd,
a Cube-effect to the 3rd and a Posterise-effect to the 4th one:

input
  I
  ->STREAM -> Twirl ->STREAM                     )
                                                  > Compose -> STREAM                                     )
          LoadImage ->TEMP1 -> Negative -> TEMP1 )                                                         )
                                                                                                            > Compose -> STREAM
                                             LoadImage -> TEMP1 -> Cube      -> TEMP1 )                    )               I
                                                                                       > Compose -> TEMP1 )              output
                                             LoadImage -> TEMP2 -> Poszerise -> TEMP2 )

This example doesn't make any sense but demonstrates that
the only limit is your own creativity.